package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootQd;
import org.footballmanager.pandafootball.system.domain.FootTt;
import org.footballmanager.pandafootball.system.domain.FootUser;
import org.footballmanager.pandafootball.system.form.impl.FootTtSearchForm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootTtService extends RepeatService<FootTt> {
	/**
	 * 根据对战双方的主力战斗力算出胜负
	 * @param userId1
	 * @param userId2
	 * @return true user1获胜 false user2获胜 null 平手
	 */
	String winner(Long userId1, Long userId2, HttpServletRequest request);
	
	/**
	 * 获取天梯赛积分榜
	 * @return
	 */
	List<FootTt> getScoreboard();

	/**
	 * 重新算排名
	 */
	void reComputeRanking(HttpServletRequest request);

	/**
	 * 添加新的天梯赛到数据库
	 * @param user
	 * @param qdId
	 */
	void saveNewTt(FootUser user, Long qdId, HttpServletRequest request);

	/**
	 * 根据用户主键查找对应所有的天梯赛信息
	 * @param userId
	 * @return
	 */
	List<FootTt> getTtsByUserid(Long userId);

	/**
	 * 更新天梯赛的球队名称
	 * @param userId
	 * @param qd
	 */
	void updateTtQdName(Long userId, FootQd qd, HttpServletRequest request);

	/**
	 * 发放天梯赛的奖励
	 */
	void reward(HttpServletRequest request);

	/**
	 * 查找是否有重复数据
	 * @param newTt
	 * @return
	 */
	boolean findRepeatData(FootTt newTt);

    /**
     * 翻页方法
     * @param footTtSearchForm 条件
     * @return 列表
     */
    List<FootTt> findall(FootTtSearchForm footTtSearchForm);

    /**
     * 查询
     * @param entityname 实体类名
     * @param map 参数
     * @param footTtSearchForm 条件
     */
    void search(String entityname, Model map, FootTtSearchForm footTtSearchForm);
}